module IDEX(clkIn,resetIn,signalsIn,Data1In,Data2In,Imm32In,AddrIn,rdIn,signalsOut,Data1Out,Data2Out,Imm32Out,AddrOut,rdOut);
  input clkIn; //from outside
  input resetIn; //from outside
  input[11:0] signalsIn; 
  input[31:0] Data1In; 
  input[31:0] Data2In; 
  input[31:0] Imm32In;
  input[31:0] AddrIn;
  input[4:0] rdIn;
  output reg[11:0] signalsOut; 
  output reg[31:0] Data1Out;
  output reg[31:0] Data2Out;
  output reg[31:0] Imm32Out;
  output reg[31:0] AddrOut; 
  output reg[4:0] rdOut;
  always @(posedge clkIn or negedge resetIn) begin
    if (!resetIn) begin 
      signalsOut<=0; 
      AddrOut<=0;
      Data1Out<=0;
      Data2Out<=0;
      Imm32Out<=0;
      rdOut<=0;
      end
    else begin 
      signalsOut<=signalsIn; 
      AddrOut<=AddrIn;
      Data1Out<=Data1In;
      Data2Out<=Data2In;
      Imm32Out<=Imm32In;
      rdOut<=rdIn;
      end
    end
endmodule